﻿using System;

namespace GameLogic.Controls
{
    public interface IGameFeatures
    {
        event EventHandler<ScoresChangedEventArgs> ChangeScoresFired; // Game wants to change scores
        event EventHandler<LivesChangedEventArgs> ChangeLivesFired; // Game wants to change lives
        
        //event EventHandler PauseTimerFired; // Game wants to pause timer
        //event EventHandler ResumeTimerFired; // Game wants to resume timer
        event EventHandler GameOverFired; // Game wants to have some time to handle game over state
        //event EventHandler NewGameFired; // Game wants to restart (rest timer, score and lives))

        void Start(); // Start a new game
        void Stop(); // Reset game
        void Pause(); // Pause game
        void Resume(); // Resume paused game

        // Wurde nie in einem einzigen Spiel verwendet.
        //void ChangeScores(int inc);
        //void ChangeLives(int inc);
        //void GameOver(GameOverEventArgs args);

        bool IsTimeBased { get; }
        bool IsLifeBased { get; }

        string GameName { get; }

        TimeSpan GameDuration { get; }

        //bool Autostart { get; }

    }
}
